Skip to content

fix: remove stale WireUtilitiesPackage and WireFoundationSupport dependencies - WPB-25373#4574

Open
netbe wants to merge 2 commits intodevelopfrom
fix/duplicate-objc-class-warnings
Open

fix: remove stale WireUtilitiesPackage and WireFoundationSupport dependencies - WPB-25373#4574
netbe wants to merge 2 commits intodevelopfrom
fix/duplicate-objc-class-warnings

Conversation

@netbe
Copy link
Copy Markdown
Collaborator

@netbe netbe commented Apr 15, 2026

BugWPB-25373 [iOS] Duplicate symbols

Issue

WireUtilitiesPackage was linked in WireDomain.xcodeproj's Frameworks build phase even though nothing in WireDomain uses it. This statically embedded ZIPFoundation symbols into WireDomain.framework, duplicating symbols already present in WireSystem.framework.

WireFoundationSupport was declared as a dependency of WireDomainPackageTests in Package.swift but is not imported in any test file. Being a static library that re-embeds WireFoundation symbols, it caused BackoffRetrier, LeadingTrailingDebouncer, and BundleFinder to appear in both WireFoundation_PackageProduct.framework and the test bundle at runtime.

Both duplicates are now detected and fail CI via scripts/check_duplicate_classes.sh.

Testing

Run the WireDomain tests and verify the CI check_duplicate_classes.sh step reports no duplicates.

Screenshot 2026-05-07 at 09 00 57

Checklist

  • Title contains a reference JIRA issue number like [WPB-XXX].
  • Description is filled and free of optional paragraphs.
  • Adds/updates automated tests.

UI accessibility checklist

If your PR includes UI changes, please utilize this checklist:

  • Make sure you use the API for UI elements that support large fonts.
  • All colors are taken from WireDesign.ColorTheme or constructed using WireDesign.BaseColorPalette.
  • New UI elements have Accessibility strings for VoiceOver.

…ndencies

WireUtilitiesPackage was linked in WireDomain.xcodeproj's Frameworks
build phase even though nothing in WireDomain uses it. This caused
ZIPFoundation symbols to be statically compiled into WireDomain.framework,
duplicating symbols already present in WireSystem.framework.

WireFoundationSupport was declared as a dependency of WireDomainPackageTests
but is not imported in any test file. Because it is a static library that
re-embeds WireFoundation symbols, it caused BackoffRetrier, LeadingTrailingDebouncer
and BundleFinder to appear in both WireFoundation_PackageProduct.framework
and the test bundle, triggering the duplicate-class check introduced in
scripts/check_duplicate_classes.sh.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 15, 2026

Test Results

  1 files  139 suites   16s ⏱️
547 tests 547 ✅ 0 💤 0 ❌
548 runs  548 ✅ 0 💤 0 ❌

Results for commit 4250b09.

♻️ This comment has been updated with latest results.

Summary: workflow run #25480053739
Allure report (download zip): html-report-29795-fix_duplicate-objc-class-warnings

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 7, 2026

@netbe netbe requested review from johnxnguyen and samwyndham May 7, 2026 07:01
@netbe netbe changed the title fix: remove stale WireUtilitiesPackage and WireFoundationSupport dependencies fix: remove stale WireUtilitiesPackage and WireFoundationSupport dependencies - WPB-25373 May 7, 2026
Copy link
Copy Markdown
Contributor

@samwyndham samwyndham left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants